[XEN] Scheduler pings only CPUs in a VCPU's affinity mask to balance load.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 15 Sep 2006 10:17:26 +0000 (11:17 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 15 Sep 2006 10:17:26 +0000 (11:17 +0100)
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/common/sched_credit.c

index 346554208393dafd1ab23deddd32f37f8a859937..5e02ead91f29bcb5aac1b31dcb1bf70cd0b42d29 100644 (file)
@@ -290,6 +290,7 @@ __runq_tickle(unsigned int cpu, struct csched_vcpu *new)
         {
             CSCHED_STAT_CRANK(tickle_idlers_some);
             cpus_or(mask, mask, csched_priv.idlers);
+            cpus_and(mask, mask, new->vcpu->cpu_affinity);
         }
     }
 
@@ -1001,6 +1002,7 @@ csched_load_balance(int cpu, struct csched_vcpu *snext)
         }
         else if ( is_idle_vcpu(per_cpu(schedule_data, peer_cpu).curr) )
         {
+            CSCHED_STAT_CRANK(steal_peer_idle);
             speer = NULL;
         }
         else